Файл: CompareDirs.txt
Дата: 10.04.2014
1:
2:
3:
4: присвоить каталог1 C:\vdv\Concept_del
5: присвоить каталог2 C:\vdv\Concept
6:
7: время таймер
8:
9: функция Соблюдается_хронология время1 время2
10: память локальный рез дата_1 дата_2 время_1 время_2 успешно дней
11:
12: присвоить рез 0
13: если [время1] != [время2]
14: строка сопоставить успешно [время1] "[?дата_1]; ;[?время_1]"
15: строка сопоставить успешно [время2] "[?дата_2]; ;[?время_2]"
16: время разностьДат дней [дата_2] [дата_1]
17: если [дней] > 0
18: присвоить рез 1
19: иначе
20: если [дней] < 0
21: присвоить рез -1
22: иначе
23: память локальный ч м с в1 в2
24: строка сопоставить успешно [время_1] "[?ч];:;[?м];:;[?с]"
25: вычислить + в1 (вычислить * $результат [ч] 3600 ) (вычислить * $результат [м] 60 ) [с]
26: строка сопоставить успешно [время_2] "[?ч];:;[?м];:;[?с]"
27: вычислить + в2 (вычислить * $результат [ч] 3600 ) (вычислить * $результат [м] 60 ) [с]
28: если [в1] < [в2]
29: присвоить рез 1
30: иначе
31: если [в1] > [в2]
32: присвоить рез -1
33: конец
34: конец
35: конец
36: конец
37: конец
38: присвоить $результат [рез]
39: возврат
40:
41: функция Объекты_по_свойству имя_свойства значение_свойства
42: память локальный рез объект успешно
43: присвоить рез {}
44: для (факт понятие $результат [значение_свойства] )
45: список сопоставить успешно (факт взять $результат [$ОбъектЦикла] ) "p;[?объект];[имя_свойства];[значение_свойства]"
46: если [успешно]
47: множество или рез $ [объект]
48: конец
49: следующий
50: присвоить $результат [рез]
51: возврат
52:
53: функция Печать_информации_о_файле объект
54: память локальный объект1
55: понятие свойства объект1 [объект]
56: если (память существует $результат 'объект1;новее' )
57: если [объект1;новее] == НОВЕЕ
58: ><i>[объект1;имя файла исходное]</i> ([объект1;размер], [объект1;дата]) <b>НОВЕЕ</b><br>
59: конец
60: иначе
61: ><i>[объект1;имя файла исходное]</i> ([объект1;размер], [объект1;дата])<br>
62: конец
63: возврат
64:
65: строка размер каталог1_размер [каталог1]
66: увеличить каталог1_размер
67: строка размер каталог2_размер [каталог2]
68: увеличить каталог2_размер
69:
70: >*** Шаг 1.Чтение информации о каталогах в разные базы фактов
71:
72: данные использовать 1
73: импорт информацияОфайлах [каталог1] каталог1_ '*.*' full
74: понятие под каталоги1 каталог
75: данные использовать 2
76: импорт информацияОфайлах [каталог2] каталог2_ '*.*' full
77: понятие под каталоги2 каталог
78:
79: >*** Шаг 2.Удаление дублирующихся объектов-файлов
80:
81: для [каталоги1]
82: данные использовать 1
83:
84: присвоить объекты1 (Объекты_по_свойству каталог [$ОбъектЦикла] )
85: для текущий_объект1 [объекты1]
86: данные использовать 1
87: понятие свойства объект1 [текущий_объект1]
88: данные использовать 2
89:
90: присвоить объекты2 (Объекты_по_свойству 'имя файла' [объект1;имя файла] )
91: для текущий_объект2 [объекты2]
92: данные использовать 2
93: понятие свойства объект2 [текущий_объект2]
94: если (строка удалить $результат [объект1;каталог] 1 [каталог1_размер] ) == (строка удалить $результат [объект2;каталог] 1 [каталог2_размер] )
95: если [объект1;дата] == [объект2;дата]
96: если [объект1;размер] == [объект2;размер]
97:
98: данные использовать 1
99: понятие удалить [текущий_объект1]
100: данные использовать 2
101: понятие удалить [текущий_объект2]
102: конец
103: иначе
104: если (Соблюдается_хронология [объект1;дата] [объект2;дата] ) > 0
105: данные использовать 2
106: факт добавить "p;[текущий_объект2];новее;НОВЕЕ"
107: данные использовать 1
108: факт добавить "p;[текущий_объект1];новее;СТАРЕЕ"
109: иначе
110: данные использовать 1
111: факт добавить "p;[текущий_объект1];новее;НОВЕЕ"
112: данные использовать 2
113: факт добавить "p;[текущий_объект2];новее;СТАРЕЕ"
114: конец
115: конец
116: конец
117: следующий
118: следующий
119: следующий
120:
121: данные использовать 1
122: для [каталоги1]
123: факт сопоставитьМножество объекты1 "p;[?рез];каталог;[$ОбъектЦикла]"
124: если [объекты1] == {}
125: понятие удалить [$ОбъектЦикла]
126: конец
127: следующий
128: данные использовать 2
129: для [каталоги2]
130: факт сопоставитьМножество объекты2 "p;[?рез];каталог;[$ОбъектЦикла]"
131: если [объекты2] == {}
132: понятие удалить [$ОбъектЦикла]
133: конец
134: следующий
135:
136: данные использовать 1
137: данные сжать
138: данные использовать 2
139: данные сжать
140:
141: память очистить текущий_объект1 текущий_объект2 объекты1 объекты2 объект1 объект2
142:
143: >*** Шаг 3.Печать различий
144:
145: присвоить ВЕРСИЯ_ШАБЛОНА 1.0
146: присвоить ФАЙЛ_РЕЗУЛЬТАТ "[$ТекущийКаталог]_CompareDirs_.htm"
147: файл писать [ФАЙЛ_РЕЗУЛЬТАТ]
148:
149:
150:
151: ><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
152: ><html><head>
153: ><meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
154: ><LINK href="concept.css" rel="stylesheet" type="text/css">
155: ><title>Каталог ссылок</title>
156: ></head><body class="View">
157: ><h1>Различия в двух каталогах</h1>
158: ><h3>Каталог 1: [каталог1]</h3>
159: ><h3>Каталог 2: [каталог2]</h3>
160:
161: данные использовать 1
162: понятие под каталоги1 каталог
163: данные использовать 2
164: понятие под каталоги2 каталог
165:
166:
167: присвоить каталоги_короткие {}
168: для [каталоги1]
169: множество или каталоги_короткие $ (строка удалить $результат [$ОбъектЦикла] 1 [каталог1_размер] )
170: следующий
171: для [каталоги2]
172: множество или каталоги_короткие $ (строка удалить $результат [$ОбъектЦикла] 1 [каталог2_размер] )
173: следующий
174:
175: если [каталоги_короткие]
176: ><table border=1>
177: ><tr><td><b>[каталог1]</b><td><b>[каталог2]</b><td></td>
178: для [каталоги_короткие]
179: если [$ОбъектЦикла] == ''
180: присвоить каталог1_длинное [каталог1]
181: присвоить каталог2_длинное [каталог2]
182: иначе
183: строка сцепить каталог1_длинное [каталог1] '\' [$ОбъектЦикла]
184: строка сцепить каталог2_длинное [каталог2] '\' [$ОбъектЦикла]
185: конец
186:
187: ><tr><td colspan="100%"><b>[$ОбъектЦикла]</b></td></tr>
188:
189: данные использовать 1
190: факт сопоставитьМножество объекты1 "p;[?рез];каталог;[каталог1_длинное]"
191: ><tr><td>
192: для [объекты1]
193: Печать_информации_о_файле [$ОбъектЦикла]
194: следующий
195: ></td>
196:
197: данные использовать 2
198: факт сопоставитьМножество объекты2 "p;[?рез];каталог;[каталог2_длинное]"
199: ><td>
200: для [объекты2]
201: Печать_информации_о_файле [$ОбъектЦикла]
202: следующий
203: ></td></tr>
204: следующий
205: ></table>
206: иначе
207: >Каталоги ОДИНАКОВЫЕ.
208: конец
209:
210:
211:
212: ><p><hr><font size="-1">Дата генерации: [$Сегодня] Версия шаблона: [ВЕРСИЯ_ШАБЛОНА]</font></p>
213: ></body></html>
214:
215: файл конецЗаписи
216: >Общее время выполнения: [$таймер]
217: показать html [ФАЙЛ_РЕЗУЛЬТАТ]